Quick specifications for the busy programmer
نویسندگان
چکیده
QuickSpec is a theory exploration system which tests a Haskell program to find equational properties of it, automatically. The equations can be used to help understand the program, or as lemmas to help prove the program correct. QuickSpec is largely automatic: the user just supplies the functions to be tested and QuickCheck data generators. Previous theory exploration systems, including earlier versions of QuickSpec itself, scaled poorly. This paper describes a new architecture for theory exploration with which we can find vastly more complex laws than before, and much faster. We demonstrate theory exploration in QuickSpec on problems both from functional programming and mathematics.
منابع مشابه
Lightning Talk: Supporting Software Sustainability with Lightweight Specifications
Lightweight specifications support software maintainability by providing a way to verify that any changes to a code base preserve certain program properties. We give two examples of lightweight specifications for numerical code: units-of-measure types which specify the physical units of numerical quantities in a program; and stencil specifications which describe the pattern of data access used ...
متن کاملOnm-3: Embryo Transfer Performed by a Midwifein a Prospective Randomized Study
More than 15 % of couples have infertility problems. Thecauses of infertility are equally distributed among men and women. Assisted reproduction is an option which can help many of these couples. Because of ongoing research and development of the infertility treatments the pregnancy outcome after in vitro fertilization can be increased. Embryo transfer (ET) has in the Nordic countries, by tradi...
متن کاملChecking Specifications in Java Systems using Flow Analysis
One of today’s challenges is producing reliable software in the face of an increasing number of interacting components. Our system CHET lets developers define specifications describing how a component should be used and checks these specifications in real Java systems. Unlike previous systems, CHET is able to check a wide range of complex conditions in large software systems without programmer ...
متن کاملRecombinations of Busy Beaver Machines
Many programmers belive that Turing-based machines cannot think. We also believe in this, however it is interesting to note that the most sophisticated machines are not programmed by human beings. We have only discovered them. In this paper, using well-known Busy Beaver and Placid Platypus machines, we generate further very similar, but not exactly the same machines. We have found a recombinate...
متن کاملThe Spec# Programming System: An Overview
The Spec# programming system is a new attempt at a more cost effective way to develop and maintain high-quality software. This paper describes the goals and architecture of the Spec# programming system, consisting of the objectoriented Spec# programming language, the Spec# compiler, and the Boogie static program verifier. The language includes constructs for writing specifications that capture ...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید
ثبت ناماگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید
ورودعنوان ژورنال:
- J. Funct. Program.
دوره 27 شماره
صفحات -
تاریخ انتشار 2017